What is class-responsibility-collaboration cards?

Class-Responsibility-Collaboration (CRC) cards are a brainstorming and problem-solving technique used in object-oriented software development. They are a simple and effective way to define and refine the responsibilities of each class in a system, as well as the interactions between them.

The CRC card technique involves creating a set of index cards, each of which represents a class in the system, and writing the name of the class on one side of the card. On the reverse side of the card, the members of the team write down the responsibilities of the class and the collaborations with other classes. They can also sketch out the methods and attributes of the class.

The CRC card technique allows the team to visualize the components of the system and their connections. By physically manipulating the cards, the team can easily experiment with different designs and configurations. This helps them to identify potential problems and optimize the design.

CRC cards are flexible and can be used at any stage of the software development process, from initial design to testing and modification. They are particularly useful in the early stages of development when the team is still exploring different approaches and considering different options.

Overall, the CRC card technique is an effective way to promote collaboration and communication within the development team, and to create a more organized and cohesive system design.